This invention generally relates to the field of computing and data communications and, more particularly, to management of communication bus controller cards used to control data communications between a computing system and one or more peripheral devices.
A computing system may be connected to one or more peripheral devices, such as data storage devices, printers, and scanners. In a computing environment, an interface mechanism connects a computing system with the peripheral devices. The interface mechanism typically includes a data communication bus to which the devices and the computing system attach. The communication bus allows the computing system and the peripheral devices to communicate in an orderly manner. One or more communication buses may be utilized in a system.
Typically, a logic chip, known as a bus controller, monitors and manages data transmission between the computing system and the peripheral devices by prioritizing the order and the manner in which said devices take over and access the communication buses. In various interface mechanisms, control rules, also known as communication protocols, are implemented to promote the communication of information between computing systems and peripheral devices. For example, Small Computer System Interface or SCSI (pronounced xe2x80x9cscuzzyxe2x80x9d) is an interface mechanism that allows for the connection of multiple (e.g., up to 15) peripheral devices to a computing system. SCSI is widely used in computing systems, such as desktop and mainframe computers.
The advantage of SCSI in a desktop computer is that peripheral devices, such as scanners, CDs, DVDs, and Zip drives, as well as hard drives can be added to one SCSI cable chain. The distinct advantage of SCSI is its use in network servers where several hard drives can be easily configured as fault-tolerant clusters. That is, in the event one drive fails, it can be removed from the SCSI bus, and a new one inserted without loss of data even while the system is still operational. A fault-tolerant communication system is generally designed to detect faults, such as power interruption or removal or insertion of peripherals, so that it can reset the appropriate system components to retransmit any lost data.
SCSI peripherals can be also daisy chained together. In a daisy chain environment an intermediate device has two ports. The first port connects to a computing system or another intermediate device attached to a computing system. The first port allows the device to communicate with the computing system. The second port is either terminated (i.e., not attached to anything) or attached to another device and allows for the computing system and the other device to communicate through the intermediate device. Thus, one or more devices can be attached in a line using a SCSI communication bus.
A SCSI communication bus uses the SCSI protocol for data communications. Hardware implementation of a SCSI communication bus is generally done using a 50 conductor flat ribbon or round bundle cable of characteristic impedance of 100 Ohm. The nominal distance is six meters in single ended mode and 25 meters in differential mode. Currently, a SCSI communication bus includes a bus controller included on a single expansion board that plugs into the host computing system. The expansion board is referred to as a xe2x80x9cSCSI host adapterxe2x80x9d.
In some embodiments, single SCSI host adapters are also available with two controllers that can support up to 30 peripherals. The SCSI host adapters can connect to an enclosure housing multiple devices. In the mid-range to high-end markets, the enclosure may have xe2x80x9cinterface cardsxe2x80x9d or xe2x80x9ccontroller cardsxe2x80x9d providing connection paths from the host adapter to SCSI busses resident in the enclosure. These controller cards can also provide bus isolation, configuration, addressing, bus reset, and fault detection functionalities for the enclosure.
One or more controller cards may be plugged in or unplugged from the backplane while data communication is in process. The insertion and removal of peripheral devices or controller cards to the backplane while the computing system is operating is referred to as xe2x80x9chot plugging.xe2x80x9d For more information on the SCSI protocol and implementations, please refer to the xe2x80x9cAmerican National Standard for SCSI-2,xe2x80x9d available as Document X3.181-199X from Global Engineering Documents, 2805 McGaw, Irvine, Calif. 92174, hereby incorporated by reference herein in its entirety.
If more than one controller card is present, one of the controller cards needs to be designated as the primary controller card or the master, the other controller cards would be designated as non-primary cards or slaves. This role assignment is needed so that a single central control logic can control and manage the operation of the buses in the system. Under certain conditions, such as power interruption, or attachment or detachment of one or more controller cards to the backplane, the designated status of the controller cards may be lost or confused. A method is needed to determine and designate the proper status to each card under such conditions.
Systems and corresponding methods for generating signals to determine and designate the status of a controller card in a communication interface are provided. In one aspect of the invention, a communication interface is implemented between a computing system and one or more peripherals that includes an interconnection backplane with at least two interface slots. Each slot receives one or more controller cards and connects the controller cards to one or more communication buses. Each communication bus includes communication ports for attachment to one or more peripheral devices. The controller cards manage the operation of the communication buses.
The controller cards include one or more bus controllers including logic circuitry for determining the status of the controller card and generating bus reset signals under certain conditions, such as power interruption or change in system configuration. A controller card may be designated to have a primary status (i.e., master) or a non-primary status (i.e., slave). The card with the primary status is responsible for controlling the communication buses by driving and initiating bus addresses if any of the following events occurs: the system""s power is interrupted, a device is inserted or removed from the buses, or a controller card is removed or added to the system. The non-primary card also resets the buses in case of a power interruption and takes over the control of the communication buses when the primary controller card is removed from the system or disabled.
In accordance with one or more aspect of the invention, a communication system with a plurality of interface slots includes control logic for determining and designating the status of one or more controller cards inserted in one of the slots such that: a controller card is designated as the primary card if it is inserted in an interface slot while the other slots are empty; a controller card in an interface slot with primary status retains its primary status while other controller cards are added or removed from the system; a controller card in an interface slot with a non-primary status assumes primary status if: the controller card with non-primary status is plugged in a slot that after a power interruption is designated as the slot to assume primary status, or the controller card with primary status is removed from the system.
The invention will be more fully understood upon consideration of the detailed description below, taken together with the accompanying figures.